Blog System | Note-4

Blog System | Note-4

@2018年7月30日 15:18:07 @Knowledge From Imooc


整体框架实现

需求设计(见Note-1)

后台整体控制层 Controller

MainController/BlogController/UserspaceController/AdminController/UserController

后台API

请求方式 API 参数
GET /blogs order,keyword,async,pageIndex,pageSize
GET /u/{username} 具体用户的主页
GET /u/{username}/profile 用户的个人设置
POST /u/{username}/profile 保存个人设置 username,User
GET /u/{username}/avatar 获取个人头像 username
POST /u/{username}/avatar 保存个人头像 username
GET /u/{username}/blogs 查询用户博客
order,catalog,keyword,async,pageIndex,pageSize
GET /u/{username}/blogs/edit 获取新增文章的页面 username
POST /u/{username}/blogs/edit 新增、编辑文章 username,Blog
GET /u/{username}/blogs/edit/{id} 获取编辑某文章的界面 username,id
DELETE /u/{username}/blogs/edit/{id} 删除文章
GET /login 登录
POST /login username,password,remember-me
GET /register 注册
POST /register 注册成功,跳转至登录 User
GET /users 用户列表 async,pageIndex,pageSize,name
GET /users/add 新增用户界面
POST /users 保存用户 User,authorityId
DELETE /users/{id} 删除用户 id
GET /users/edit/{id} 获取某个用户的编辑界面 id
GET /comments 获取评论列表 blogId
POST /comments 保存评论 blogId,commentContent
DELETE /comments/{id} 删除评论 id,blogId
POST /votes 保存点赞 blogId
DELETE /votes 删除点赞 blogId
GET /catalogs 获取用户分类列表 username
POST /catalogs 保存用户雷芬 username,CatalogVO(username,Catalog)
GET /catalogs/edit/{id} 获取某ID分类的编辑界面
DELETE /catalogs/{id} 删除分类 id,username

前端整体布局

/ — index.html / login.html / register.html

admins — index.html

fragments — header.html / footer.html / page.html

users — form.html / list.html / view.html

userspace — blog.hmtl / blogedit.html / u.html

用户管理 & 角色管理

注册、登录(在授权管理实现)、增加用户、修改用户、删除用户、搜索用户

1
2
3
4
5
6
7
POST 	/register
GET /register(User)
GET /users(async,pageIndex,pageSize,name);
GET /users/add;
POST /users;
DELETE /users/{id};
GET /users/edit/{id};
应用@
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// 修改User实体
@NotEmpty(message = "姓名不能为空")
@Size(min = 2, max = 20)
@Column(nullable = false, length = 20)

// 新增Authority实体
@Entity
public class Authority implements GrantedAuthority{...}

// 编写Repository
public interface UserRepository extends JpaRepository<User,Long> {...}
public interface AuthorityRepository extends JpaRepository<Authority,Long> {...}

// 完成Service
public interface UserService {...}

// 完成Impl
@Service
public class UserServiceImpl implements UserService {...}

// VO
public class Response {...}

// Util
public class ConstraintViolationExceptionHandler {
/**
* 获取批量异常信息
* @param e
* @return
*/
public static String getMessage(ConstraintViolationException e){
List<String> msgList = new ArrayList<>();
for(ConstraintViolation<?> constraintViolation : e.getConstraintViolations()){
msgList.add(constraintViolation.getMessage());
}
String messages = StringUtils.join(msgList.toArray(),";");
return messages;
}
}

// 对应Controller
AdminController,MainController,UserController
// 前端页面


附录

null

@2018年7月30日 20:21:17